package com.proba.annotations.pojo;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.springframework.samples.mvc.basic.model.Identifiable;

/**
 * <p>
 * Pojo mapping TABLE MAVROVO.GOTOV_PROIZVOD
 * </p>
 * 
 * <p>
 * Generated at Thu Feb 25 19:39:57 CET 2010
 * </p>
 * 
 * @author Salto-db Generator v1.0.16 / EJB3
 * 
 */
@Entity
@Table(name = "GOTOV_PROIZVOD", schema = "MAVROVO")
@SuppressWarnings("serial")
@javax.persistence.SequenceGenerator(name = "gotov_proizvod_seq", sequenceName = "gotov_proizvod_seq", allocationSize = 1)
public class GotovProizvod implements Identifiable, Serializable {

	/**
	 * Attribute id.
	 */
	private Long id;

	/**
	 * Attribute gotovProizvod.
	 */
	private String gotovProizvod;

	/**
	 * Attribute tipGotovProizvod
	 */
	private TipGotovProizvod tipGotovProizvod;

	/**
	 * Attribute mbFrakcii.
	 */
	private Long mbFrakcii;

	/**
	 * Attribute edinicaMerka
	 */
	private EdinicaMerka edinicaMerka;

	/**
	 * List of IzvrsenaRealizacija
	 */
	private List<IzvrsenaRealizacija> izvrsenaRealizacijas;

	/**
	 * @return id
	 */
	@Basic
	@Id
	@Column(name = "ID")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "gotov_proizvod_seq")
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            new value for id
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return gotovProizvod
	 */
	@Basic
	@Column(name = "GOTOV_PROIZVOD", length = 60)
	public String getGotovProizvod() {
		return gotovProizvod;
	}

	/**
	 * @param gotovProizvod
	 *            new value for gotovProizvod
	 */
	public void setGotovProizvod(String gotovProizvod) {
		this.gotovProizvod = gotovProizvod;
	}

	/**
	 * get tipGotovProizvod
	 */
	@ManyToOne
	@JoinColumn(name = "TIP_GOTOV_PROIZVOD")
	public TipGotovProizvod getTipGotovProizvod() {
		return this.tipGotovProizvod;
	}

	/**
	 * set tipGotovProizvod
	 */
	public void setTipGotovProizvod(TipGotovProizvod tipGotovProizvod) {
		this.tipGotovProizvod = tipGotovProizvod;
	}

	/**
	 * @return mbFrakcii
	 */
	@Basic
	@Column(name = "MB_FRAKCII")
	public Long getMbFrakcii() {
		return mbFrakcii;
	}

	/**
	 * @param mbFrakcii
	 *            new value for mbFrakcii
	 */
	public void setMbFrakcii(Long mbFrakcii) {
		this.mbFrakcii = mbFrakcii;
	}

	/**
	 * get edinicaMerka
	 */
	@ManyToOne
	@JoinColumn(name = "EDINICA_MERKA")
	public EdinicaMerka getEdinicaMerka() {
		return this.edinicaMerka;
	}

	/**
	 * set edinicaMerka
	 */
	public void setEdinicaMerka(EdinicaMerka edinicaMerka) {
		this.edinicaMerka = edinicaMerka;
	}

	/**
	 * Get the list of IzvrsenaRealizacija
	 */
	@OneToMany(mappedBy = "gotovProizvod")
	public List<IzvrsenaRealizacija> getIzvrsenaRealizacijas() {
		return this.izvrsenaRealizacijas;
	}

	/**
	 * Set the list of IzvrsenaRealizacija
	 */
	public void setIzvrsenaRealizacijas(
			List<IzvrsenaRealizacija> izvrsenaRealizacijas) {
		this.izvrsenaRealizacijas = izvrsenaRealizacijas;
	}

	public String toString() {
		return this.gotovProizvod;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		GotovProizvod other = (GotovProizvod) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}